---
title: KeyboardOnlyTreeEngine 键盘专属树形引擎
icon: ListTree
relatedFile: app/src/core/service/controlService/keyboardOnlyEngine/keyboardOnlyTreeEngine.tsx
---

该服务是一个专门用于处理Xmind风格树形结构的键盘操作引擎。它允许用户通过键盘快捷键来创建和调整树形图中的节点，实现节点的深度生长（添加子节点）和广度生长（添加同级节点），并能自动调整树的布局。

## API

### `onDeepGenerateNode()`

功能：实现树形结构的深度生长。当用户选中一个节点时，此方法会在该节点的右侧或下方创建一个新的子节点。它会智能判断新节点的位置，并将其连接到父节点，同时继承父节点的颜色。如果父节点在一个“框”内，新节点也会被纳入该框。创建后，服务会尝试自动重新排列树的布局，并聚焦到新创建的节点上，同时激活编辑模式。

### `onBroadGenerateNode()`

功能：实现树形结构的广度生长。当用户选中一个节点时，此方法会在其同级位置（通常是下方）创建一个新的兄弟节点。它会找到当前节点的父节点，并在父节点下创建新节点，连接关系和颜色继承与深度生长类似。同样，创建后会尝试自动重新排列树的布局，并聚焦到新节点上，激活编辑模式。

### `adjustTreeNode(entity: ConnectableEntity)`

功能：根据指定的已选中节点，调整其所属树的整体结构布局。此方法会触发对该节点所在树的自动对齐和布局优化。
